package com.wengu.algorithm.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.util.Date;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 模拟任务分配结果
 * </p>
 *
 * @author wanghailei
 * @since 2025-02-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class AssignmentOutcome implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 关联主表ID
     */
    private Long mainId;

    /**
     * 生成数据的版本号，同一个版本号为同一批数据
     */
    private Integer versionNo;

    /**
     * 创建时间
     */
    private Date createDate;

    /**
     * 更新时间
     */
    private Date updateDate;

    /**
     * 逻辑删除标识：0=正常，1=删除
     */
    private Integer deleteFlag;

    /**
     * 总质量
     */
    private Double totalQuality;

    /**
     * 平均质量
     */
    private Double averageQuality;

    /**
     * 任务总数
     */
    private Integer taskNumber;

    /**
     * 用户总数
     */
    private Integer userNumber;

    /**
     * 平均每个任务被执行的次数
     */
    private Double taskAverageExecuteTimes;

    /**
     * 算法名称
     */
    private String algName;

    /**
     * 用户总数
     */
    private Long executeTime;
    /**
     * 高斯核函数的sigma参数，控制权重衰减速度
     */
    private double sigma;
    /**
     * 权重调节参数，取值范围[0,1]
     */
    private double alpha;
    /**
     * 权重调节参数，取值范围[0,1]
     */
    public double gamma;
    /**
     * 权重调节参数，取值范围[0,1]
     */
    public double mu;
    /**
     * 蚂蚁数量
      */
    public int antCount;
    /**
     * 迭代轮数
     */
    public int roundCount;
    /**
     * 信息素初始值
     */
    public double initialPheromone;
    /**
     * 信息素权重参数
     */
    public double pheromoneWeight;
    /**
     * 启发式信息权重参数
     */
    public double heuristicWeight;
    /**
     * 信息素挥发系数
     */
    public double evaporationRate;
    /**
     * 最优路径选择概率
     */
    private double bestSelectionProbability;
    /**
     * 质量函数
     */
    private String qualityFunction;
    /**
     * 计算权重方式
     */
    private String weightWay;
}
